home *** CD-ROM | disk | FTP | other *** search
- Date: Thu, 22 Jul 1993 13:48:29 +0200
- Message-Id: <199307221148.AA11357@sun.ph-cip.uni-koeln.de>
- To: mint@atari.archive.umich.edu
- From: hessdorf@ph-cip.uni-koeln.de (Joerg Hessdoerfer)
- Subject: minix fs syncer
-
- Hi all!
-
- After several crashes of my working partition ;-( I decided to write this little
- utility: it sends a 'SIGALRM' to the 'update' demon of minix fs, causing it to
- sync tthe fs'.
-
- SIGALRM was the natural choice, since Steven uses Talarm() to schedule fs
- syncing.
-
- P.s.: I crashed my fs' cause I write a SCSI driver, which fiddles with the
- interrupt vectors. When this is done before a sync occured, Minix fs can't
- write
- on the partition at the next update(), so I loose...
- I hope, Steven includes this one (or a similar one) in his releases, since a use
- of this before doing anything possibly harmful (e.g. power off, reset button)
- might well save your work ;-))
-
- Here's the listing:
- -----------------------------8<-------------------------------------------------
- #include <mintbind.h>
- #include <signal.h>
-
- /* This is a simple minix-fs syncer. It sends SIGALRM to the
- 'update' process. Since this signal is captured, it causes
- a sync on the fs'. */
-
- const char update[]="U:\\proc\\update.*";
-
- int main()
- {
- int upid;
- _DTA dta;
-
- Fsetdta(&dta);
- if(!Fsfirst(update,0))
- {
- upid=atoi(&(dta.dta_name[strlen(dta.dta_name)-3])); /* The
- process ID is in the 3-byte extension */
- Pkill(upid,SIGALRM);
- printf("update demon notified. File systems are being synced.\n");
- }
- else printf("No update demon running. No sync performed.\n");
- }
- -----------------------8<-------------------------------------------------------
- Greetings, Joe
-
- email: hessdorf@sun.ph-cip.uni-koeln.de
-
- snail mail:
- Joerg Hessdoerfer | Remember: warranty void if seal is broken!
- Niehler Str. 332 | (broken seal)
- BRD 5000 Koeln 60
-
- Telephone: (Germany) 0221/714178 (home) or 02203/6013335 (office)
-
-